[support.initlist.range] git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@104975 91177308-0d34-0410-b5e6-96231b3b80d8 
diff --git a/include/initializer_list b/include/initializer_list index 266c0f5..671aa27 100644 --- a/include/initializer_list +++ b/include/initializer_list 
@@ -36,6 +36,9 @@  const E* end() const;  };   +template<class E> const E* begin(initializer_list<E> il); +template<class E> const E* end(initializer_list<E> il); +  } // std    */ @@ -75,6 +78,22 @@  _LIBCPP_ALWAYS_INLINE const _E* end() const {return __begin_ + __size_;}  };   +template<class _E> +inline _LIBCPP_INLINE_VISIBILITY +const _E* +begin(initializer_list<_E> __il) +{ + return __il.begin(); +} + +template<class _E> +inline _LIBCPP_INLINE_VISIBILITY +const _E* +end(initializer_list<_E> __il) +{ + return __il.end(); +} +  } // std    #endif // _LIBCPP_INITIALIZER_LIST 
diff --git a/test/language.support/support.initlist/support.initlist.range/begin_end.pass.cpp b/test/language.support/support.initlist/support.initlist.range/begin_end.pass.cpp new file mode 100644 index 0000000..7c6dc1c --- /dev/null +++ b/test/language.support/support.initlist/support.initlist.range/begin_end.pass.cpp 
@@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// <initializer_list> + +// template<class E> const E* begin(initializer_list<E> il); + +#include <initializer_list> +#include <cassert> + +struct A +{ + A(std::initializer_list<int> il) + { + const int* b = begin(il); + const int* e = end(il); + assert(il.size() == 3); + assert(e - b == il.size()); + assert(*b++ == 3); + assert(*b++ == 2); + assert(*b++ == 1); + } +}; + +int main() +{ +#ifdef _LIBCPP_MOVE + A test1 = {3, 2, 1}; +#endif +}